/*
T1 一般用作UART0波特率，已被UART0使用 (ms51_uart.c)
    本文件提供为剩下还能使用的定时器进行初始化的方法
    中断服务函数统一在 ISR.c中
*/
#include "mcu_timer.h"
#include "mcu.h"



void Tim2_Init()
{
    TIMER2_DIV_512;
    TIMER2_Auto_Reload_Delay_Mode;

    RCMP2H = TH2_VALUE;
    RCMP2L = TL2_VALUE;

    TH2 = TH2_VALUE;
    TL2 = TL2_VALUE;

    set_EIE_ET2;   // Enable Timer2 interrupt
    set_T2CON_TR2; // Timer2 run
}

void Tim0_Init()
{
    // T0配置
    ENABLE_TIMER0_MODE1;
    TH0 = TH0_VALUE;
    TL0 = TL0_VALUE;
    ET0 = 1; //使能T0中断
    TR0 = 1; //开始计数

    // 8051所有中断默认中断等级为0（最低）
}

void Tim0_ReLoad()
{
    TH0 = TH0_VALUE;
    TL0 = TL0_VALUE;    
    TF0 = 0;
}

u16 Tim0_GetNowValue()
{
    u8 h = TH0;
    u8 l = TL0;
    u16 now = h;
    now <<= 8;
    now += l;
    return (now - (u16)(65536 - TIM0_VALUE));
}
